#include <dretve.h>
#include <ispis.h>
#include <vrijeme.h>

static int globalna = 0;

static void proces ( void *param )
{
	int i, id = (int) param;
	vrijeme_t koliko;

	koliko.sekunde = 1;
	koliko.nsekunde = 0;
	
	ispisi("Proces %d, pocetak\n", id);

#define NN 30
	for ( i = 0; i < NN; i++ ) {
		globalna += id;
		ispisi ( "Proces %d, prolaz %d/%d (gl=%d)\n", id, i + 1, NN,
			  globalna );
		odgodi ( koliko );
	}
#undef NN

	ispisi ( "Proces %d zavrsava\n", id );
}

void test_procesi ()
{
	ispisi ( "\n[%s:%s]\n", __FILE__, __FUNCTION__ );

	int pr1, pr2;
	
	pr1 = stvori_proces ( proces, (void *) 1 );
	pr2 = stvori_proces ( proces, (void *) 2 );
	if ( pr1 == -1 || pr2 == -1 )
		return; //nije potrebno ispisivati poruku o gresci, to je vec

	vrijeme_t koliko;

	koliko.sekunde = 10;
	koliko.nsekunde = 0;

	odgodi ( koliko );
	ispisi ( "Ubijam proces %d\n", 1 );
	prekini_proces ( pr1 );

	odgodi ( koliko );
	ispisi ( "Ubijam proces %d\n", 2 );
	prekini_proces ( pr2 );

}
